Skip to content

chore: restore release safety baseline#13

Merged
Fiona2016 merged 3 commits into
publishfrom
chore/release-safety-automation
Jun 12, 2026
Merged

chore: restore release safety baseline#13
Fiona2016 merged 3 commits into
publishfrom
chore/release-safety-automation

Conversation

@Fiona2016

Copy link
Copy Markdown
Collaborator

Motivation

Restore a reliable green CI/release baseline for the Flashcat browser SDK. The previous release path relied too much on manual local checks, and e2e tests still had several local/offline reliability issues, including the e2e intake server forwarding requests to browser-intake-datadoghq.com during tests.

Release-flow recommendation from this work:

  • PR / release preflight should run the full safety baseline: install, format, lint, typecheck, build, unit, package checks, compatibility, release bundle, script tests, and e2e.
  • The actual publish job should not be the first place that discovers long-running e2e/build failures. It should mainly validate immutable inputs, use artifacts produced by a verified preflight, and run quick smoke/metadata checks before publishing.
  • Relying on "local full run + publish only unit tests" is not safe enough: local state is not reproducible, and release safety should be enforced by GitHub Actions on the exact commit being released.

Changes

  • Add a GitHub Actions CI baseline for PR/push checks.
  • Harden deploy workflows with explicit release preflight, immutable install, manual confirmation, artifact handoff, and safer version handling.
  • Add/adjust deploy script tests, including OSS prerelease detection.
  • Restore deterministic local e2e behavior:
    • test:e2e:ci initializes test apps before running e2e.
    • e2e intake no longer forwards requests to browser-intake-datadoghq.com.
    • non-BrowserStack e2e servers use OS-assigned free ports to avoid worker port collisions.
    • flaky session flush / tracing / resource / view assertions were tightened.
  • Fix compatibility-test app package resolution and make compatibility cleanup non-destructive to the working tree.

Test instructions

Fresh local validation on this branch:

  • yarn install --immutable passes with existing peer warning: performances@workspace:performances does not provide typescript requested by ts-node.
  • yarn format
  • yarn lint
  • yarn typecheck
  • scripts/cli typecheck test/e2e
  • yarn build
  • node scripts/check-packages.js
  • yarn test:unit --single-run -> 2643 SUCCESS
  • yarn test:compat:tsc
  • yarn test:compat:ssr
  • BUILD_MODE=release yarn build:bundle
  • yarn test:script
  • yarn test:e2e:ci -> 444 passed, no flaky/retry in the final run

Targeted flaky regression checks:

  • forward logs to the bridge --repeat-each=5 -> 15 passed
  • flush events when the session expires --repeat-each=10 -> 30 passed
  • getScrollX/Y should not be affected by pinch scroll --repeat-each=10 -> 30 passed

Also verified e2e code no longer contains browser-intake-datadoghq, forwardIntakeRequestToDatadog, E2E_FORWARD_INTAKE, or e2e https.request forwarding.

Checklist

  • Tested locally
  • Tested on staging
  • Added unit tests for this change.
  • Added e2e/integration tests for this change.

Fiona2016 and others added 3 commits June 11, 2026 23:02
…ty-automation

# Conflicts:
#	test/apps/react/yarn.lock
#	test/apps/vanilla/yarn.lock
#	yarn.lock
After merging publish, the fork's default-usr-id behavior (usr.id falls
back to the session anonymous id) applies to log events, so the request
spec must expect both id and anonymous_id.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Fiona2016 Fiona2016 changed the base branch from main to publish June 12, 2026 09:59
@Fiona2016 Fiona2016 merged commit 61fefa3 into publish Jun 12, 2026
4 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant